home *** CD-ROM | disk | FTP | other *** search
/ NeXT Enterprise Objects Framework 1.1 / NeXT Enterprise Objects Framework 1.1.iso / NextDeveloper / Examples / EnterpriseObjects / Validation / Validation.subproj / ValidatingDelegate.h < prev    next >
Encoding:
Text File  |  1995-02-17  |  3.3 KB  |  71 lines

  1. #import <eointerface/eointerface.h>
  2.  
  3. @interface ValidatingDelegate : Object
  4. {
  5.     BOOL validatesImmediately;   // validate when change is made, or only when they 
  6.                                  // try to save?
  7. }
  8.  
  9. - (void)setValidatesImmediately:(BOOL)yn;
  10. - (BOOL)validatesImmediately;
  11.     // retuns whether the delegate will perform validation checks on user changes
  12.     // on a per-field basis.  If not, check are performed before insert/update/delete.
  13.  
  14. - (NSDictionary *)controller:(EOController *)controller willSaveEdits: (NSDictionary *)edits toObject:object;
  15.     // to perform validation on changes to objects as they are made.
  16.  
  17. - (EODataSourceOperationDelegateResponse)controller:(EOController *)controller
  18.     willInsertObject:object
  19.     inDataSource:dataSource;
  20.     // Used to ask object if it's ready to be inserted.
  21.     // By default we will try to validate all of its properties.
  22.  
  23. - (EODataSourceOperationDelegateResponse)controller:(EOController *)controller
  24.     willUpdateObject:object
  25.     inDataSource:dataSource;
  26.     // Used to ask object if it's ready to be updated.
  27.     // By default we will try to validate all of its properties.
  28.  
  29. - (EODataSourceOperationDelegateResponse)controller:(EOController *)controller
  30.     willDeleteObject:object
  31.     inDataSource:dataSource;
  32.     // to ask object if it can be deleted.
  33.  
  34. - (void)reportValidationErrors:(NSDictionary *)errors forObject:object
  35.                   inController:(EOController *)controller;
  36.     // Called by delegate to report validate error.  Default implementation displays
  37.     // a panel.  Subclassers may want to update a status line in the window, or
  38.     // just beep.
  39. @end
  40.  
  41.  
  42. @interface NSObject (ValidationProtocols)
  43. // An EO can implement some or all of these methods to play a roll in its validation
  44. - (NSArray *)keysToValidate;
  45.     // Return list of property names that must be valid before object can be
  46.     // inserted or updated.  Default implementation returns an empty array.
  47.     // Better implementations might scan the runtime information in the
  48.     // receiver for methods of the form validateXXXX:.
  49.     // For EOs that keep a pointer to their entity (provided in
  50.     // initWithPrimaryKey:entity) this method could return the classPropertyNames.
  51.  
  52. - (NSDictionary *)validForDataSource:(id <EODataSources>)dataSource;
  53.     // should return nil if object is valid for insert and update,
  54.     // or a dictionary of key/error message pair describing the problem if not.
  55.     // The default implementation returns
  56.     // [self validateValuesInDictionary:[self valuesForKeys:[self keysToValidate]]]
  57. - (NSDictionary *)validForInsertInDataSource:(id <EODataSources>)dataSource;
  58.     // should return nil if object is valid for insert, or a dictionary of key/error message
  59.     // pair describing the problem if not.  The default implementation calls
  60.     // [self validForDataSource:dataSource]
  61.  
  62. - (NSDictionary *)validForUpdateInDataSource:(id <EODataSources>)dataSource;
  63.     // should return nil if object is valid for update, or a dictionary of key/error message
  64.     // pair describing the problem if not.  The default implementation calls
  65.     // [self validForDataSource:dataSource]
  66.  
  67. - (NSDictionary *)validForDeleteInDataSource:(id <EODataSources>)dataSource;
  68.     // should return nil if object is valid for insert, or a dictionary of key/error message
  69.     // pair describing the problem if not.  The default implementation returns nil.
  70. @end
  71.